/**
 1.npm install mongodb --save-dev / cnpm install mongodb --save-dev
 2.var MongoClient = require('mongodb').MongoClient;
 var url = 'mongodb://localhost:27017/xdp';   连接数据库的地址
 3.连接数据库
 MongoClient.connect(url, function(err, db) {

});

 4.实现增加修改删除
 MongoClient.connect(url, function(err, db) {
    db.collection('user').insertOne({'name':'zhangsan'},function(error,data){
    })
});
 */

var http = require("http");
var url = require("url");
var ejs = require("ejs");
/*引入数据库 MongoClient*/
var mongoClient = require("mongodb").MongoClient;
var DBurl = 'mongodb://localhost:27017/xdp';  // 连接数据库的地址,xdp表示数据库的名称
http.createServer(function (req,res) {
    //设置 HTTP 头部，状态码是 200，文件类型是 html，字符集是 utf8
    res.writeHead(200,{"Content-Type":"text/html;charset=UTF-8"});
    var pathname = url.parse(req.url).pathname;
    if(pathname=="/add"){//增加
        mongoClient.connect(DBurl,function (err,client) {
            if(err){
                console.log(err);
                console.log('数据库连接失败');
                return;
            }
            //mongodb3.x之后要这样使用
            //xdp为数据库名称
            var db = client.db("xdp");
            //gacl为数据库里面的某一个集合；
            var collection = db.collection("gacl");
            collection.insertOne(
                {
                    "name":"XDP_孤傲苍狼XDP_",
                    "age":29,
                    "sex":"男"
                },function (error,result) {
                    if(error){
                        console.log('增加数据失败');
                        return;
                    }
                    res.end('增加数据成功');
                    client.close();/*关闭数据库连接*/
                }
            );
        });
    }else if(pathname=="/edit"){//编辑
        mongoClient.connect(DBurl,function (err,client) {
            if(err){
                console.log("数据库连接失败");
                return;
            }
            var db = client.db("xdp");
            var collection = db.collection("gacl");
            //修改一条数据
            collection.updateOne(
                {
                    "name":"XDP_孤傲苍狼XDP_"//以name作为修改条件
                },
                {
                    $set:{"age":666,"name":"孤傲苍狼——XDP"}//要修改的字段
                },function(error,data){
                    if(error){
                        console.log('修改数据失败');
                        return;
                    }
                    console.log(data);
                    res.end('修改数据成功');
                    client.close();/*关闭数据库*/
                }
            );
        });
    }else if(pathname=="/delete"){//删除
        var query = url.parse(req.url,true).query;
        var name = query.name;//参数名称
        mongoClient.connect(DBurl,function (err,client) {
            if(err){
                console.log("数据库连接失败");
                return;
            }
            var collection = client.db("xdp").collection("gacl");
            //根据Name删除数据
            collection.deleteOne({"name":name},function (error,data) {
                if (error) {
                    console.log('删除失败');
                    return;
                }
                console.log(data);
                res.end('删除数据成功');
                client.close();
            });
        });
    }
    else{
        var msg="从MongoDB查询数据出来展示";
        mongoClient.connect(DBurl,function (err,client) {
            if(err){
                console.log("数据库连接失败");
                return;
            }
            var collection = client.db("xdp").collection("gacl");
            collection.find({}).toArray(function (err,items) {
                if(err){
                    console.log("查询数据失败");
                    return;
                }
                ejs.renderFile("views/index.ejs",
                    {
                        "msg":msg,
                        "dataList":items
                    },
                    function(err,data){
                        res.end(data);
                    }
                );
            });
        });
    }
}).listen(8090);
console.log("服务器启动，访问地址：http://localhost:8090");